package top.goldenyear.porpoise.framework.isolate.config;

import java.util.Collections;
import java.util.Set;
import lombok.Data;
import org.noear.solon.annotation.Configuration;
import org.noear.solon.annotation.Inject;

/**
 * 多租户配置
 *
 * @author Airhead
 */
@Configuration
@Inject(value = "${porpoise.tenant}", required = false)
@Data
public class TenantProps {

  /** 租户是否开启 */
  private static final Boolean ENABLE_DEFAULT = false;

  /** 是否开启 */
  private Boolean enabled = ENABLE_DEFAULT;

  /**
   * 需要忽略多租户的请求
   *
   * <p>默认情况下，每个请求需要带上 tenant-id 的请求头。但是，部分请求是无需带上的，例如说短信回调、支付回调等 Open API！
   */
  private Set<String> ignoreUrls = Collections.emptySet();

  /**
   * 需要忽略多租户的表
   *
   * <p>即默认所有表都开启多租户的功能，所以记得添加对应的 tenant_id 字段哟
   */
  private Set<String> ignoreTables = Collections.emptySet();
}
